package 程序员面试金典;

import java.util.Arrays;
import java.util.HashMap;

public class 零和一个数相同的子数组 {

    public int findMaxLength(int[] nums) {
        int preSum=0;
        int res=0;
        HashMap<Integer, Integer> map = new HashMap<>();
        map.put(0,-1);
        for (int i = 0; i < nums.length; i++) {
            preSum+=nums[i]==0?1:-1;
            if (!map.containsKey(preSum))
                map.put(preSum,i);
            else{
               res=Math.max(res,i-map.get(preSum));
            }
        }
        return res;
    }
}
